﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using SRP_LibBusinessRules;
using SRP_LibBusinessEntity;
using System.Data;
using System.IO;

namespace SRPCENTRIA.ws_appPrivada
{
    public partial class wManPerfil : BasePage
    
    {
        private DataTable dt = new DataTable();
        
       
        protected void Page_Load(object sender, EventArgs e)
        {
                 

            lblError.Visible = false;
            if (!IsPostBack)
            {
                CargarDatos();
               
            }
          
        }


        private void CargarDatos()
        {
            try
            {
                NPerfil NPerfil = new NPerfil();

                dt = NPerfil.ListarPerfil(txtBuscar.Text);
                this.grvDatos.DataSource = dt;
                this.grvDatos.DataBind();      
            }
            catch (Exception ex)
            { 
                throw ex;
            }
        }


   

        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            

            if(txtdescripcion.Text== ""){
                EscribirScriptManager("Debe ingresar descripción");
                  //lblError.Visible = true;
                  //lblError.Text = "Debe ingresar una descripción";
                  return;
              }

        
          
            String descripcion = txtdescripcion.Text;
            String estado;
            

            if (chkEstado.Checked == true)
            {
                estado = "1";
            }
            else
            {
                estado = "0";
            }


            NPerfil NPerfil = new NPerfil();
            if (NPerfil.InsertarPerfil(descripcion, estado) == 1)
            {
                EscribirScriptManager("Perfil insertado con éxito");
                //lblError.Visible = true;
                //lblError.Text = "Perfil insertado con éxito";
            }
            else
            {
                EscribirScriptManager("No se pudo insertar Perfil");
                //lblError.Visible = true;
                //lblError.Text = "No se pudo insertar el Perfil";
                return;
            }

            CargarDatos();
            Limpiar();
       

        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            CargarDatos();
        }

        public void Limpiar()
        {
            txtdescripcion.Text = "";
            chkEstado.Checked = false;
        }

        protected void grvDatos_SelectedIndexChanged(object sender, EventArgs e)
        {

            //CargarDatos();
            //GridViewRow row = grvDatos.SelectedRow;
            //String codigo;
            //codigo  =row.Cells[0].Text;
            //hdnCodigo.Value = codigo;

            //txtdescripcion.Text = row.Cells[1].Text;

            CargarDatos();
            GridViewRow row = grvDatos.SelectedRow;

            String codigo;
            codigo = dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["PK_IPER_IDPERFIL"].Ordinal].ToString();
            hdnCodigo.Value = codigo;

            txtdescripcion.Text = dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["VPER_NOM_PERFIL"].Ordinal].ToString();

            if (dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["ESTADO"].Ordinal].ToString() == "ACTIVO")
            {
                chkEstado.Checked = true;
            }
            else 
            {
                chkEstado.Checked = false;
            }                   

            //ocultar botón agregar
            btnAgregar.Visible = false;
            //mostrar botón edición
            btnEditar.Visible = true;
            MostrarModulo(Convert.ToInt16(codigo));                
        }

        private void MostrarModulo(int Codigo) 
        {
            NPerfil NPerfil = new NPerfil();

            dt = NPerfil.ListarPerfilModulo(Codigo);
            this.grvDatos2.DataSource = dt;
            this.grvDatos2.DataBind();
            int numero = 0;
             
            foreach (GridViewRow row in grvDatos2.Rows)
            {
                numero = numero + 1;
                CheckBox chk = default(CheckBox);
                CheckBox check = row.FindControl("chk") as CheckBox;
                string ESTADO = dt.Rows[numero-1].ItemArray[dt.Columns["ESTADO"].Ordinal].ToString();
                if (ESTADO == "9")
                {
                    check.Checked = true;

                }
             
            }


            grvDatos2.Visible=true;
        }
 
     

        protected void btnEditar_Click(object sender, EventArgs e)
        {          

             if(txtdescripcion.Text== ""){
                 EscribirScriptManager("Debe ingresar descripción");
                  //lblError.Visible = true;
                  //lblError.Text = "Debe ingresar una descripción";      
                 return;
                 }
 

                
                String descripcion = txtdescripcion.Text;
                String estado;


                if (chkEstado.Checked == true)
                {
                    estado = "1";
                }
                else
                {
                    estado = "0";
                }


                NPerfil NPerfil = new NPerfil();

                  
                int count = grvDatos2.Rows.Count - 1;
                CheckBox chk = default(CheckBox);
                int contador1 = 0;
                int contador2 = 0;
                int contador5 = 0;

                foreach (GridViewRow row in grvDatos2.Rows)
                {
                    contador1 = contador1 + 1;
                    if (contador1 == 1)
                    { MostrarModulo(Convert.ToInt16(hdnCodigo.Value)); }
                    
                    CheckBox check = row.FindControl("chk") as CheckBox;
                    string Cod = dt.Rows[contador1-1].ItemArray[dt.Columns["idmodulo"].Ordinal].ToString();
                  
                    if (check.Checked)
                    {
                        contador5 = contador5 + 1;
                        if (contador5== 1)
                        {
                            if (NPerfil.EditarPerfil(hdnCodigo.Value, descripcion, estado) == 1)
                            {
                                EscribirScriptManager("Perfil insertado con éxito");
                                //lblError.Visible = true;
                                //lblError.Text = "Perfil atualizado con éxito";
                                if (NPerfil.EliminarPerfilModulo(Convert.ToInt16(hdnCodigo.Value)) == 1)
                                {
                                    //EscribirScriptManager("Perfil actualizo con éxito");
                                    //lblError.Visible = true;
                                    //lblError.Text = "Perfil Modifico con éxito";
                                }
                            }
                            else
                            {
                                EscribirScriptManager("No se pudo actualizar el Perfil");
                                //lblError.Visible = true;
                                //lblError.Text = "No se pudo Modifico el Perfil";
                            }
                        }

                        if (NPerfil.InsertarPerfilModulo(Convert.ToInt16(hdnCodigo.Value), Convert.ToInt16(Cod)) == 1)
                        {
                            EscribirScriptManager("Perfil se actualizar con éxito");
                            //lblError.Visible = true;
                            //lblError.Text = "Perfil se Modifico con éxito";
                        }
                        else
                        {
                            EscribirScriptManager("No se pudo actualizar el Perfil");
                            //lblError.Visible = true;
                            //lblError.Text = "No se pudo Modifico el Perfil"; 
                        }

                    }
                    else
                    {
                        contador2 = contador2 + 1;
                        if (contador2-1 == count)
                        {
                            EscribirScriptManager("Favor de seleccionar modulos");
                            //lblError.Visible = true;
                            //lblError.Text = "Favor de seleccionar Modulos ";
                            return;
                        }

                    }
                }





               CargarDatos();
               Limpiar();

            //mostrar botón agregar
            btnAgregar.Visible = true;
            //ocultar botón edición
            btnEditar.Visible = false;
            grvDatos.DataBind();
            grvDatos2.Visible = false; 
            
            
    }

        protected void grvDatos_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            grvDatos.PageIndex = e.NewPageIndex ;
            CargarDatos(); 
        }

          }

}